import React, { useEffect } from 'react';
import { Navigate, Outlet, useLocation } from 'umi';
import { message } from 'antd';
import { isAuthenticated } from '@/utils/auth';

/**
 * 身份认证路由包装器
 * 用于保护需要登录才能访问的页面
 */
const AuthWrapper: React.FC = () => {
  const location = useLocation();
  
  // 检查用户是否已登录
  const isLoggedIn = isAuthenticated();
  
  useEffect(() => {
    if (!isLoggedIn) {
      message.error('请先登录');
    }
  }, [isLoggedIn]);
  
  // 如果未登录，重定向到登录页面，并记住原来要访问的路径
  if (!isLoggedIn) {
    return <Navigate to="/" replace state={{ from: location }} />;
  }
  
  // 已登录，显示受保护的内容
  return <Outlet />;
};

export default AuthWrapper; 